#ifndef __CardGame__Battle__
#define __CardGame__Battle__
#include "BattleArmies.h"
#include "BattleRecord.h"
#include "BattleResult.h"

class BattleState
{
private:
	unsigned int m_nRound;
public:
	unsigned int getRound(){
		return m_nRound;
	}
	void setRound( unsigned int nRound ){
		m_nRound = nRound;
	}
};

class Battle
{
public:
	Battle();
	virtual ~Battle();

public:
	BattleArmies* getAttackArmies(){
		return m_pAttackArmies;
	}
	void setAttackArmies(BattleArmies* pBattleArmies){
		m_pAttackArmies = pBattleArmies;
	}

	BattleArmies* getDefenceArmies(){
		return m_pDefenceArmies;
	}

	void setDefenceArmies(BattleArmies* pBattleArmies){
		m_pDefenceArmies = pBattleArmies;
	}

	BattleState* getBattleState(){
		return m_pBattleState;
	}

	BattleRecord* getBattleRecord(){
		return m_pBattleRecord;
	}

	BattleResult* getBattleResult(){
		return m_pBattleResult;
	}

	void init();
	void onBattleStart();
	void onBattleEnd();

protected:
private:
	BattleArmies* m_pAttackArmies;
	BattleArmies* m_pDefenceArmies;
	BattleRecord* m_pBattleRecord;
	BattleResult* m_pBattleResult;
	BattleState*  m_pBattleState;

};




#endif